
ECHO SEO is a focused SEO toolkit for engineering, construction and home services businesses — the trades and professional services that live and die by local search.
- Business Info & Schema — enter your business once and it powers schema.org JSON-LD on every page, typed to your industry. FAQPage schema and Team Members are read from your own pages.
- Keyword Map — find pages missing an SEO title, description or focus keyword, then map each target keyword to one page so your pages never compete. Nothing is written until you click Apply.
- Bulk SEO Editor — titles, descriptions, noindex and focus keywords for every content type on one screen.
- Analytics & Tracking — Google Tag Manager or GA4, the Facebook (Meta) Pixel and the LinkedIn Insight Tag, each loading only once you enter its ID. The pixels wait for marketing consent (WP Consent API).
- Redirects & 404 Monitoring — a redirect manager with hit counts, and 404 tracking that filters out scanner noise.
- XML Sitemap & IndexNow — one sitemap that replaces WordPress’s own, plus optional, off-by-default IndexNow.
- Page Speed, AI Visibility, SEO Tasks, Yoast import, WooCommerce — PageSpeed checks with history, an
llms.txtdigest with per-crawler robots rules, a prioritized checklist, a Yoast SEO import, and Product schema.
There is no AI in this plugin and none of your content is sent to an AI service. The only outside connections are the ones you switch on, listed under “External services” below. Each feature is described in detail in the FAQ.
Want more?
ECHO SEO Premium (sold separately, not on WordPress.org) adds Google Business Profile management, bulk alt-tag editing, internal-link suggestions and AI-written titles, descriptions and structured data. Everything in this plugin stays fully functional without it. Learn more at echo-seo.com.
External services
This plugin can connect to the third-party services listed below. Every one of them is off until you switch it on: nothing is contacted when the plugin is activated, and nothing is contacted by a setting you have not chosen. The plugin makes no requests to Digital Stride’s servers and runs no analytics of ours. The one exception is the optional setup registration at the end of this list, which is an email sent only if you tick a consent box.
Each entry below says how the service is switched on, when the connection is made and by whom (your server or your visitors’ browsers), what is sent, and how to switch it off again.
IndexNow — api.indexnow.org
Used to tell participating search engines (Bing, Yandex, Naver, Seznam.cz) that a URL on your site is new or has changed.
- Switched on by: ticking “Notify search engines via IndexNow when content is published or updated”, either under Business Info Settings Instant Indexing or on the setup wizard’s Site Options step. It is off by default. Until it is ticked, no request is made and no IndexNow key is generated.
- When it connects: your server sends one request each time a publicly viewable post, page or other public content item is published or updated. Password-protected content, drafts, revisions and autosaves are never sent. Each item is sent at most once an hour.
- What is sent: that item’s public URL, your site’s IndexNow key, and the address of the key file. Ticking the box also publishes the key file at
https://your-site/{key}.txtso the search engines can confirm you own the domain. No personal data and no site statistics are sent. - Switch it off: untick the box. Requests stop at once, and the key file stops being served.
- Microsoft operates api.indexnow.org. See the IndexNow documentation and the Microsoft Privacy Statement.
Google PageSpeed Insights API — www.googleapis.com
Used to measure a page’s performance.
- Switched on by: clicking “Run Check” on the Page Speed screen. There is nothing to enable, and nothing runs in the background.
- When it connects: your server sends one request to Google for each check you run.
- What is sent: the URL of the page being tested, the device type (mobile or desktop), and your own PageSpeed API key if you have entered one. Google returns performance metrics.
- See the Google Terms of Service and Google Privacy Policy.
OpenStreetMap Nominatim — nominatim.openstreetmap.org
Used to turn a typed street address into map coordinates.
- Switched on by: clicking “Find Coordinates” under Business Info Locations.
- When it connects: your own browser, not your server and not your visitors, sends one request each time you click the button.
- What is sent: the address you typed. Coordinates are returned and filled into the form. They are saved only when you save the settings.
- See the Nominatim Usage Policy and the OpenStreetMap Foundation Privacy Policy.
Google Tag Manager — www.googletagmanager.com
Lets you manage your own marketing tags from a Tag Manager container.
- Switched on by: choosing Google Tag Manager and connecting a container ID (GTM-XXXXXXX) in one of two places:
- Business Info Settings Analytics & Tracking: enter the ID, then click “Connect GTM”. Saving the page without clicking Connect does not switch it on.
- The setup wizard’s Google Tracking step: enter the ID, then click Continue. Continue connects the tag, as the step says; Skip, or a blank ID, connects nothing.
- When it connects: from then on, your visitors’ browsers load
gtm.jsfrom Google on every public page of your site. This tag is not held back for cookie consent by this plugin. If your visitors must be asked first, set up Consent Mode in your Google tag settings. - What is sent: Google receives the standard request data from each visitor’s browser (IP address, browser details, the page address). The container then runs whatever tags you have configured in it.
- Switch it off: clear the ID and save. A connection belongs to the ID it was made with, so a changed ID has to be connected again.
- See the Google Terms of Service and Google Privacy Policy.
Google Analytics 4 (gtag.js) — www.googletagmanager.com
Measures visits to your site in your Google Analytics property.
- Switched on by: choosing Google Analytics 4 instead of Tag Manager and connecting a Measurement ID (G-XXXXXXXXXX) in the same two places:
- Business Info Settings Analytics & Tracking, with “Connect GA4”.
- The setup wizard’s Google Tracking step, with Continue.
- Only one of Google Tag Manager and Google Analytics 4 is ever loaded.
- When it connects: from then on, your visitors’ browsers load
gtag.jsfrom Google on every public page and send a page view to your property. This tag is not held back for cookie consent by this plugin. If your visitors must be asked first, set up Consent Mode in your Google tag settings. - What is sent: the page view, plus the standard request data from each visitor’s browser (IP address, browser details, the page address).
- Switch it off: clear the ID and save.
- See the Google Terms of Service and Google Privacy Policy.
Facebook (Meta) Pixel — connect.facebook.net
Lets you measure and retarget advertising traffic.
- Switched on by: entering a Facebook Pixel ID under Business Info Settings Analytics & Tracking and saving. The setup wizard does not set this up.
- When it connects: depends on the “Cookie consent” setting on the same screen (see “How the cookie consent setting works” below). Under the default setting, your visitors’ browsers load Meta’s Pixel script only once consent for marketing cookies has been given for that visitor. Under “Load them for every visitor”, it loads on every public page as soon as the page opens.
- What is sent: once it has loaded, the Pixel sends a page-view event, plus any events your site sends with
fbq(), to Meta. - Switch it off: clear the ID and save.
- See the Meta Terms of Service and Meta Privacy Policy.
LinkedIn Insight Tag — snap.licdn.com
Used for B2B advertising measurement.
- Switched on by: entering a LinkedIn Partner ID under Business Info Settings Analytics & Tracking and saving. The setup wizard does not set this up.
- When it connects: exactly as for the Facebook Pixel above.
- What is sent: once it has loaded, the Insight Tag sends page-view and conversion events to LinkedIn.
- Switch it off: clear the ID and save.
- See the LinkedIn Terms of Service and LinkedIn Privacy Policy.
How the cookie consent setting works (Facebook Pixel and LinkedIn Insight Tag only)
The default setting is “Load the Facebook and LinkedIn pixels only once the visitor’s consent for marketing cookies has been given”. Under it:
- Before consent, neither script is requested from Meta or LinkedIn, and neither sets a cookie. Calls your site makes to
fbq()orlintrk()are queued in the page, then sent if consent is given or discarded if it is not. - The plugin itself never asks the visitor anything. It relies on your cookie banner, which tells it about consent in either of two ways:
- Through the WP Consent API, which Complianz, CookieYes, Cookiebot, Borlabs and most WordPress cookie banners support. The scripts load when
wp_has_consent( 'marketing' )is true as the page loads, or when the banner reports that the visitor has allowed marketing cookies. - By calling
window.echsConsentGranted(), or dispatching anechs_consent_grantedevent ondocument. This is for banners that do not use the WP Consent API.
- Through the WP Consent API, which Complianz, CookieYes, Cookiebot, Borlabs and most WordPress cookie banners support. The scripts load when
- Whether
wp_has_consent( 'marketing' )is true before the visitor has made a choice is decided by your cookie banner, not by this plugin. Where the banner applies opt-in rules (for example, for visitors in the EU), it is false until the visitor accepts. Where the banner applies opt-out rules (as many banners do for visitors in much of the US), it is true until the visitor declines, so the scripts load on the first page view. - If the visitor withdraws consent, the scripts are not loaded on later page views. A script already loaded on the page that is open stays loaded until the visitor leaves that page.
- If no WP Consent API banner is active and nothing calls
window.echsConsentGranted(), the scripts never load. The settings screen warns you when this is the case.
The other setting, “Load them for every visitor”, loads both scripts on every public page without waiting. Choose it only if no visitor to your site needs to be asked first.
Google Tag Manager and Google Analytics 4 are not covered by this setting: once connected, they load on every public page (see above).
Optional setup registration — email to Digital Stride
The last step of the setup wizard lets you share your details with Digital Stride, the plugin’s developer, so we can support you and send product updates.
- It is optional and off by default. Nothing is stored or sent unless you tick a consent checkbox, you can skip the step entirely, and the plugin works the same either way.
- It is not an API call or a tracking beacon. It is a single plain-text email, sent from your own site with WordPress’s
wp_mail()at the moment you finish the wizard, and never again. - Each checkbox decides what that email contains:
- The marketing box sends only the name, email and company you typed on that step, plus your site’s URL and title.
- The second box also sends the business profile you entered earlier in the wizard: business name and type, phone, address, service areas, opening hours and social profile URLs.
- Tick neither and no email is sent and nothing is stored.
- ECHO SEO is made by Digital Stride, a d/b/a of Experience 1st, LLC, which is the company these details are sent to. See the Privacy Policy for what we do with these details, how long we keep them and how to withdraw consent, and the Terms of Service.
If you enable Google Tag Manager, Google Analytics 4, the Facebook Pixel or the LinkedIn Insight Tag, you are responsible for disclosing that tracking in your own site’s privacy policy, and for obtaining any visitor consent your jurisdiction requires.
Screenshots

Business Info — set your business identity, location, hours, and schema type.

Bulk SEO editor — edit titles and meta descriptions for all your content at once.

404 Monitoring — track broken links with one-click redirect creation.

Redirect Manager — manage 301/302/307 redirects with hit counts.