Title: ECHO SEO
Author: digitalstride
Published: <strong>17. september, 2026</strong>
Last modified: 21. oktober, 2026

---

Søg plugins

![](https://ps.w.org/echo-seo/assets/banner-772x250.png?rev=3699461)

![](https://ps.w.org/echo-seo/assets/icon.svg?rev=3699461)

# ECHO SEO

 Af [digitalstride](https://profiles.wordpress.org/digitalstride/)

[Download](https://downloads.wordpress.org/plugin/echo-seo.1.2.0.zip)

 * [Detaljer](https://da.wordpress.org/plugins/echo-seo/#description)
 * [Vurderinger](https://da.wordpress.org/plugins/echo-seo/#reviews)
 *  [Installation](https://da.wordpress.org/plugins/echo-seo/#installation)
 * [Udvikling](https://da.wordpress.org/plugins/echo-seo/#developers)

 [Support](https://wordpress.org/support/plugin/echo-seo/)

## Beskrivelse

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.txt` digest 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](https://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}.txt` so 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](https://www.indexnow.org/documentation)
   and the [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement).

**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](https://policies.google.com/terms) and [Google Privacy Policy](https://policies.google.com/privacy).

**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](https://operations.osmfoundation.org/policies/nominatim/)
   and the [OpenStreetMap Foundation Privacy Policy](https://wiki.osmfoundation.org/wiki/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.js` from 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](https://policies.google.com/terms) and [Google Privacy Policy](https://policies.google.com/privacy).

**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.js` from 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](https://policies.google.com/terms) and [Google Privacy Policy](https://policies.google.com/privacy).

**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](https://www.facebook.com/legal/terms) and [Meta Privacy Policy](https://www.facebook.com/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](https://www.linkedin.com/legal/l/service-terms)
   and [LinkedIn Privacy Policy](https://www.linkedin.com/legal/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()` or `lintrk()` 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](https://wordpress.org/plugins/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 an `echs_consent_granted`
      event on `document`. This is for banners that do not use the WP Consent API.
 * 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](https://echo-seo.com/privacy-policy)
   for what we do with these details, how long we keep them and how to withdraw 
   consent, and the [Terms of Service](https://echo-seo.com/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.

## Skærmbilleder

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

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.⌉⌊
Bulk SEO editor — edit titles and meta descriptions for all your content at once
.⌉[

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

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

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

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

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

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/`, or install directly through
    the WordPress admin under Plugins  Add New.
 2. Activate the plugin through the “Plugins” menu in WordPress. A short setup wizard
    walks you through your core business details — you can skip it and fill everything
    in later.
 3. Go to **ECHO SEO  Business Info** and complete your business identity, address,
    and hours — this powers the schema.org data shown to search engines.
 4. Visit the other sections in the left-hand menu (Bulk SEO, Redirects, 404 Monitoring,
    Page Speed, SEO Tasks, Import SEO) as needed.

## FAQ

### Does this conflict with Yoast SEO or other SEO plugins?

No. If Yoast SEO, Rank Math, All in One SEO, SEOPress or The SEO Framework is active,
ECHO SEO leaves the page title, meta tags, canonical, robots tag and schema to it
rather than printing a second copy, and tells you so with an admin notice. Sitemaps,
redirects, 404 monitoring, Bulk SEO and SEO Tasks keep working. To switch over, 
use the built-in Import SEO tool to bring your titles and descriptions across, then
deactivate the other plugin.

### What’s the difference between the free and Premium versions?

The free version covers full LocalBusiness schema, per-page SEO, bulk-editing for
every public content type (Pages, Posts, Products, and more), redirects, 404 monitoring,
XML sitemaps with IndexNow, Page Speed checks, AI visibility (llms.txt), analytics
tag installation, and SEO tasks. ECHO SEO Premium (a separate, paid add-on that 
is not hosted on WordPress.org) adds full Google Business Profile management (posting,
reviews, Q&A) and a few extra tools.

### Does this plugin send my data anywhere?

Only as described in “External services” above, and only after you have opted in
to the feature concerned. The plugin does not track you or your visitors and collects
no usage statistics. It makes no requests to Digital Stride’s servers at all; the
only thing that ever reaches us is the optional registration email on the last step
of the setup wizard, which is sent — once — from your own site only if you tick 
a consent box there. Your business data (name, address, hours, etc.) is stored in
your own WordPress database and is not sent to any third party by this plugin, except
when you explicitly use the “Find Coordinates” address lookup. If you enable IndexNow,
the addresses (URLs) of content you publish are shared with search engines; if you
run a Page Speed check, that page’s URL is sent to Google — that’s what those features
are for. Google Tag Manager, Google Analytics 4, the Facebook Pixel, and the LinkedIn
Insight Tag only load if you enter their IDs.

### What does the 404 monitor store about my visitors?

For each 404 hit it stores the requested URL, the referrer, and the browser’s user-
agent string in your own WordPress database. It does not record IP addresses or 
any other personal information, and nothing from the 404 log is sent off your site(
the optional daily digest goes to the email address you choose).

### Do I need an API key for Page Speed checks?

No — checks work out of the box using Google’s free shared quota. That shared quota
can run out at busy times, so the Page Speed screen also lets you paste in your 
own free PageSpeed Insights API key for a dedicated quota.

### What is llms.txt and will it change my site?

llms.txt is an emerging convention (llmstxt.org) for giving AI assistants a clean,
machine-readable summary of your site. The plugin can serve one at `/llms.txt` (
off by default) and lets you allow or block each well-known AI crawler in your robots.
txt. Neither touches your pages’ rendering.

### What happens to my data if I delete the plugin?

Nothing is removed by default. Deactivating never deletes anything, and deleting
the plugin from the Plugins screen also leaves your settings, per-page SEO fields,
redirects, 404 log, and Page Speed history in the database — so reinstalling picks
up exactly where you left off. If you would rather remove it all, tick “Delete all
ECHO SEO data when the plugin is deleted” under Business Info  Settings  Plugin 
Data before deleting. That runs a full cleanup: the plugin’s options, its per-page
meta, its three database tables, its cached data, and its scheduled event. It cannot
be undone, and it never touches anything belonging to ECHO SEO Premium.

### How many keywords and pages can the Keyword Map handle?

Up to 250 target keywords. The scan saves its progress every ten pages, so it has
no fixed page limit. The finished map is stored in one piece, and with the full 
250 keywords it stays within a standard MySQL server’s limits up to about 1,500 
pages; on larger sites, use fewer keywords. If the map is ever too large for your
server to store, the screen says so instead of losing it. As a guide, aim for no
more keywords than you have pages worth ranking: 20–40 for a 30-page site, 100–250
for a 300-page site. A scan’s saved progress is kept for six hours; if it is lost,
the scan stops with a message and you start it again.

### Will this slow down my site?

No. Schema output is lightweight, and no tracking script is loaded on your site’s
front end unless you’ve configured it (by entering a tracking ID). Reading a page’s
FAQs, team members and text is done in the background with WP-Cron after the page
is saved, never while a visitor’s page is being built, and the front end only reads
the cached result.

### What does each feature do, in detail?

**Business Info & Schema**

 * Set your business identity, service area, hours, and social profiles once, and
   have them power schema.org structured data (JSON-LD) across your whole site —
   one linked graph per page, with your business, website, page and breadcrumb all
   pointing at each other.
 * Add per-page custom schema and SEO title/meta description overrides from a tab
   right on the post/page editor screen. FAQPage schema switches on by itself on
   pages with a real FAQ section (ACF FAQ fields, a FAQ block, or two or more questions
   in a FAQ section) and is read from every FAQ section on the page, so it never
   goes stale. Other questions found on a page are offered in the editor instead.
 * Fill in your Team Members from your own site: one click reads your About and 
   Team pages for the people shown on them — name, job title, credentials, LinkedIn
   profile, headshot — and lists them for review; approve, and they are added to
   your business profile.
 * Automatic business schema on every page, typed to your specific industry (contractor,
   HVAC, plumber, electrician, professional services, and dozens more).

**Keyword Map**

 * An inventory of what your site is missing: pages without an SEO title, meta description,
   or focus keyword, and images without alt text.
 * Set a primary goal, your target keywords, and your services under Goals & Keywords,
   then build a keyword-to-page map: every page is scored against every keyword 
   from what is already on it (how often the term appears, whether it is in the 
   H1, the URL, and the opening paragraphs), and each keyword is assigned to one
   page so two of your pages never compete for the same term.
 * The map flags competing pages and keywords no page covers yet. Nothing is written
   until you review the table and click Apply — and it only ever writes focus keywords,
   never your content.
 * All of this is computed on your own site. There is an option to fetch each page
   over HTTP as a visitor sees it, so page-builder output is scored too; it is off
   by default, and it only requests your own URLs.
 * There is no AI in this plugin. The Keyword Map is computed from what is on your
   pages, and none of your content is sent to an AI service. AI-written titles, 
   descriptions, structured data and alt text (“One-Click SEO”) and AI keyword suggestions
   are features of ECHO SEO Premium only, a separate paid add-on that is not hosted
   on WordPress.org.

**Bulk SEO Editor**

 * Edit SEO titles, meta descriptions, noindex flags, and focus keywords for every
   public content type on your site — Pages, Posts, and any others (Products, portfolios,
   and so on) — from one screen, with live readability and keyword-density feedback.

**Analytics & Tracking**

 * Install Google Tag Manager or Google Analytics 4, plus the Facebook (Meta) Pixel
   and the LinkedIn Insight Tag, from the plugin settings — no code editing or extra
   plugins required. Each one loads only once you enter its ID, and the Google tags
   only once you also click Connect (see “External services” below). By default 
   the Facebook Pixel and LinkedIn Insight Tag load only once your cookie banner
   reports the visitor’s consent to marketing cookies through the WP Consent API.
   Google Tag Manager and GA4 are not consent-gated by the plugin; use Google’s 
   Consent Mode for those. The plugin warns you while no Google tracking is connected.

**Redirects & 404 Monitoring**

 * Built-in redirect manager (301/302/307) with hit counts.
 * Automatic 404 tracking that separates real visitor traffic from bot/scanner noise,
   with an optional daily email digest and one-click “create a redirect” from any
   logged 404.

**XML Sitemap & IndexNow**

 * Automatic XML sitemap at `/sitemap.xml` (a sitemap index with one sitemap per
   public post type and taxonomy), kept up to date as you publish and listed in 
   robots.txt. It replaces WordPress’s own `/wp-sitemap.xml`, which redirects to
   it, and includes anything your theme or other plugins add through WordPress’s
   sitemap API. Posts, pages and term archives you mark noindex are left out. While
   Settings  Reading  “Discourage search engines” is ticked, no sitemap is served,
   as with WordPress’s own.
 * Optional instant indexing: if you switch it on, publishing or updating content
   submits its URL via the IndexNow protocol so participating search engines (Bing,
   Yandex, Naver, Seznam.cz) hear about it right away. This is off by default — 
   see “External services” below for exactly what gets sent.

**Page Speed**

 * Run Google PageSpeed Insights checks (mobile and desktop) for any page on your
   site without leaving WordPress, with score history so you can see trends over
   time. Works out of the box, or add your own free API key for a dedicated quota.

**AI Visibility**

 * Serve a machine-readable `llms.txt` digest of your site (the emerging llmstxt.
   org convention) and set each well-known AI crawler — answer engines and model-
   training crawlers alike — to Allow or Block in your robots.txt. Whether AI crawlers
   may read your site stays your decision.

**SEO Tasks & Import**

 * A prioritized checklist of SEO improvements specific to your site.
 * One-click import of titles, meta descriptions, and OG/Twitter data from Yoast
   SEO, so switching over doesn’t mean starting from scratch.

**WooCommerce support**

 * Automatic Product schema pulled from your WooCommerce catalog data.

## Anmeldelser

![](https://secure.gravatar.com/avatar/eb4e0e21f239e34d1e1c609022d72b30cc2d697a27dfac132006bda4256bfcd5?
s=60&d=retro&r=g)

### 󠀁[Easy to use](https://wordpress.org/support/topic/easy-to-use-5411/)󠁿

 [jgallo](https://profiles.wordpress.org/jgallo/) 17. oktober, 2026

This has saved me a lot of time using the Bulk SEO feature for alt tags and pages.

 [ Læs 1 anmeldelse ](https://wordpress.org/support/plugin/echo-seo/reviews/)

## Bidragsydere & udviklere

“ECHO SEO” er open source-software. Følgende personer har bidraget til dette plugin.

Bidragsydere

 *   [ digitalstride ](https://profiles.wordpress.org/digitalstride/)

[Oversæt “ECHO SEO” til dit eget sprog.](https://translate.wordpress.org/projects/wp-plugins/echo-seo)

### Interesseret i udvikling?

[Gennemse koden](https://plugins.trac.wordpress.org/browser/echo-seo/), tjek [SVN repository](https://plugins.svn.wordpress.org/echo-seo/),
eller abonner på [udviklerloggen](https://plugins.trac.wordpress.org/log/echo-seo/)
via [RSS](https://plugins.trac.wordpress.org/log/echo-seo/?limit=100&mode=stop_on_copy&format=rss).

## Ændringslog

#### 1.2.0

 * Fixed: the readability sentence checks (sentences over 20 words, passive voice,
   transition words, repeated openers, reading ease) ran headings, buttons and tab
   labels into the sentence after them, since nothing on a rendered page ends a 
   heading with a full stop. A line break now ends a sentence, a short line with
   no closing punctuation is a label rather than a sentence, and a full stop inside
   an abbreviation or initial (“e.g.”, “Dr.”) no longer ends one. The same rule 
   applies to the reading-ease score in Bulk SEO.
 * New: “What the scanner read” under the readability checks. A collapsed panel 
   shows the text the checks measured, where it came from (the editor, the rendered
   page, the post body, page-builder data or ACF fields), paragraph by paragraph,
   with every sentence over 20 words marked, every paragraph over 150 words edged
   in red, and the headings and labels left out of the sentence counts dimmed. The
   sentence and paragraph lines also show their counts (“3 of 12”).
 * Fixed: Content Analysis reported “100% of paragraphs exceed 150 words” on every
   page built from ACF layouts or a page builder, however short its paragraphs. 
   The scan flattened the rendered page to one line, so the readability check saw
   one page-long paragraph. The scan now keeps a paragraph break at every block 
   of the page — a heading, a paragraph, a list item, a layout’s text — and the 
   check measures those. A page whose last scan predates this change shows no paragraph
   line until it is scanned again, rather than a wrong one.
 * Changed: FAQPage switches on by itself only for a real FAQ section: ACF FAQ fields,
   a FAQ block or Question microdata, or at least two questions in a FAQ section.
   A “Why choose us?” toggle elsewhere on a page no longer marks the page up as 
   a FAQ; the editor offers the questions it found so you can tick FAQPage yourself.
 * Improved: a page’s FAQs, team members and text are read in the background (WP-
   Cron) after it is saved, instead of inside the first visitor’s request. Front-
   end pages no longer run the page body through the content filter in the page 
   head, so shortcodes, page builders and view counters run once.
 * Fixed: ACF Link, Select (“Both”), Group and image-ID fields in team, FAQ and 
   step repeaters were read as the text “Array” (with a PHP warning); the LinkedIn
   URL, label or image URL is now read from them.
 * Fixed: on large sites with many target keywords, the keyword map scan could lose
   its saved progress and start over endlessly. Progress is now saved in small pieces,
   holding only the keywords each page actually uses, and a scan whose progress 
   is lost stops with a message. A map too large for the server to store says so.
 * Fixed: no sitemap is served, and /wp-sitemap.xml is not redirected, while “Discourage
   search engines from indexing this site” is ticked. WordPress’s own sitemap is
   off there too. Unticking it brings the sitemap back.
 * Fixed: category, tag and other term archives marked noindex are no longer listed
   in the sitemap.
 * Changed: the One-Click SEO screen is now called Keyword Map, which is what it
   does in this plugin. It contains no AI features and no longer carries an Alpha
   label. AI generation is part of ECHO SEO Premium only.
 * Fixed: a page’s OG Image URL and Twitter (X) Image URL were ignored while “Use
   SEO Title & Description” was ticked, so Facebook fell back to the featured image
   or the default — or, when the image came without a size, to whatever large picture
   it found on the page. The image fields now sit outside that switch and always
   count, and every media-library social image is printed with its width, height
   and alt text so Facebook can draw the card on the first share.
 * New: the setup wizard now asks about Google tracking and site options. A Google
   Tracking step takes a Google Tag Manager container ID or a GA4 Measurement ID
   and connects it on Continue (the same as the Connect button on the Settings tab),
   and a Site Options step offers Instant Indexing (IndexNow), AI Visibility, and
   the disable-comments and disable-pingbacks switches, each off until ticked and
   each explained in place. Both steps can be skipped and everything can be changed
   later under Business Info  Settings.
 * Improved: the Site map view of the keyword map now follows your URLs. A page 
   at /resources/guides/aec-guides/article/ sits under AEC Guides, under Guides,
   under Resources, whether or not a page lives at each of those addresses — a category
   or an archive becomes a folder named after it. Sections under the home page start
   open and everything deeper starts closed, with a badge showing how many pages
   a closed section holds; click the badge to open it. Open all, Close all and Default
   buttons on the bar, and your choice is remembered.
 * New: Find people on your site. A button under Business Info  Business Identity
   Team Members reads your About and Team pages (About Us, Our Team, Meet the Team,
   Leadership, Staff and the like) for the people shown on them — team-member cards
   from any theme or builder, schema.org Person microdata, or a name heading followed
   by a job title — and lists each one with their job title, credentials, LinkedIn
   profile and headshot for review. Approve, and they are added to Team Members 
   and saved. People already listed are never doubled. An option reads each page
   as a visitor sees it, for page builders that only render on the front end.
 * Improved: About and Team pages are recognised by their slug or title (not just
   a slug containing “about”) and typed AboutPage, about your business.
 * New: `echs_is_about_page` filter for sites whose about pages the plugin does 
   not recognise.
 * Fixed: FAQPage schema reads every FAQ section on a page. A page with two FAQ 
   sections (for example two ACF FAQ layouts) used to get only the first.
 * Fixed: a deep scan no longer turns section headings such as “Why Digital Stride?”
   into FAQ entries. Theme accordions, FAQ blocks, microdata and ARIA disclosure
   buttons are recognised; question headings count only inside a FAQ section; and
   a deep scan can no longer override a more reliable read of the ACF FAQ fields.
 * Fixed: toggles in the site header, navigation and footer (a menu button, for 
   example) are no longer read as FAQ questions.
 * New: FAQPage schema switches on by itself on pages with a FAQ section. Untick
   it on the page to keep it off.
 * New: one sitemap. WordPress’s own /wp-sitemap.xml is switched off and redirects
   to /sitemap.xml, robots.txt names the sitemap, taxonomy archives are included,
   and pages registered with WordPress’s sitemap API by a theme or plugin are listed.
   Developers can extend it with the echs_sitemap_* filters.
 * New: allow or block each AI crawler, including each model-training crawler, in
   robots.txt. Google-Extended is now listed as a training crawler.
 * New: the Facebook Pixel and LinkedIn Insight Tag load only once marketing consent
   has been given for the visitor, as reported by a WP Consent API cookie banner(
   or by window.echsConsentGranted() for other banners). Whether consent counts 
   as given before the visitor chooses is decided by the banner’s opt-in or opt-
   out rules for that visitor’s region. Sites that need no consent can switch this
   off under Analytics & Tracking.

#### 1.1.0

 * New: One-Click SEO screen — an inventory of pages missing an SEO title, meta 
   description or focus keyword, and images missing alt text.
 * New: Goals & Keywords tab on Business Info (and a matching setup wizard step)
   for your primary goal, target keywords, services, geographic focus, brand voice
   and industry.
 * New: keyword map that assigns each target keyword to the page that best fits 
   it, flags pages competing for the same keyword and keywords no page covers yet,
   and writes focus keywords only when you click Apply. Focus keywords you set by
   hand are kept.
 * New: the keyword map has three views of the same plan — by keyword, by page (
   add, reorder or remove the keywords each page carries), and a site map that draws
   your pages as a tree with their keywords, where you can drag a keyword from one
   page to another.
 * New: add a keyword from the keyword map itself; it joins your target list and
   is scored across the site without a full rebuild.
 * Improved: after Apply, the keyword map shows what you approved rather than its
   first guess, and a rebuild keeps every focus keyword you set.
 * New: Bulk SEO Issues column listing each page’s on-page problems (keyword placement
   and density, title and description length, heading structure, readability).
 * New: when Yoast SEO is active, the setup wizard starts with an import step that
   brings over post SEO data and Yoast’s business profile, then pre-fills the remaining
   steps.
 * Improved: the page scan falls back to the post content when the site blocks requests
   to itself, and no longer triggers a PHP 8.2 deprecation notice.
 * Improved: Social Profiles in the setup wizard are matched to the right network
   by URL.
 * Improved: saving Business Info returns to the tab you were on; keyword and service
   lists start with three rows.
 * Improved: ZIP code fields fit a ZIP+4.
 * Improved: every admin string, including the importer screen and help tooltips,
   is now translatable.
 * Tested with WordPress 7.1.2.

#### 1.0.1

 * FAQPage schema is now read from the page’s own FAQ sections (headings, definition
   lists, details/summary, ACF repeaters and page-builder output) every time the
   page is viewed, so editing an FAQ updates the schema by itself. The entries typed
   into the meta box are only used when nothing can be read from the page.
 * One robots tag and one canonical per page: noindex/nofollow now go through WordPress’s
   own wp_robots filter, so “Discourage search engines” is never contradicted, and
   a canonical override replaces the URL in core’s canonical link instead of adding
   a second one.
 * All structured data is printed as a single linked graph: the business, website,
   page, breadcrumb, article and any page-level types share @ids and point at each
   other.
 * The business is one node, typed by your Business Type setting. Nothing is assumed
   about your industry any more: a site that has not chosen a type is described 
   as a generic Organization, and the SEO Tasks list asks you to choose one. The
   setup wizard and the Yoast import now set the same option the schema reads.
 * Removed the aggregate star rating fields. A rating a business marks up about 
   itself is “self-serving” review markup under Google’s guidelines and is never
   shown as stars.
 * Word counts, keyword checks, readability, the search preview’s fallback description
   and the llms.txt digest now read the page as a visitor sees it — the last rendered
   scan, page-builder data (Elementor, Bricks, Beaver Builder, Oxygen, Breakdance)
   or shortcode text — instead of an empty post body.
 * Open Graph tags carry og:type article on posts (with published and modified times),
   og:site_name, og:locale, image sizes and a description fallback from the excerpt
   or page text; front and archive pages get social tags too.
 * When Yoast SEO, Rank Math, All in One SEO, SEOPress or The SEO Framework is active,
   ECHO SEO stops printing its own tags and schema so nothing is doubled up.

#### 1.0.0

 * Initial release. Google Business Profile management is available in the separately-
   sold ECHO SEO Premium add-on.

## Meta

 *  Version **1.2.0**
 *  Senest opdateret **5 dage siden**
 *  Aktive installationer **Færre end 10**
 *  WordPress-version ** 6.0 eller højere **
 *  Testet op til **7.1.3**
 *  PHP-version ** 8.0 eller højere **
 *  Sprog
 * [English (US)](https://wordpress.org/plugins/echo-seo/)
 * Tags
 * [404](https://da.wordpress.org/plugins/tags/404/)[local business](https://da.wordpress.org/plugins/tags/local-business/)
   [redirects](https://da.wordpress.org/plugins/tags/redirects/)[schema](https://da.wordpress.org/plugins/tags/schema/)
   [seo](https://da.wordpress.org/plugins/tags/seo/)
 *  [Avanceret visning](https://da.wordpress.org/plugins/echo-seo/advanced/)

## Bedømmelser

 5 ud af 5 stjerner.

 *  [  1 5-stjernet anmeldelse     ](https://wordpress.org/support/plugin/echo-seo/reviews/?filter=5)
 *  [  0 4-stjernet anmeldelser     ](https://wordpress.org/support/plugin/echo-seo/reviews/?filter=4)
 *  [  0 3-stjernet anmeldelser     ](https://wordpress.org/support/plugin/echo-seo/reviews/?filter=3)
 *  [  0 2-stjernet anmeldelser     ](https://wordpress.org/support/plugin/echo-seo/reviews/?filter=2)
 *  [  0 1-stjernet anmeldelser     ](https://wordpress.org/support/plugin/echo-seo/reviews/?filter=1)

[Din anmeldelse](https://wordpress.org/support/plugin/echo-seo/reviews/#new-post)

[Se alle anmeldelser](https://wordpress.org/support/plugin/echo-seo/reviews/)

## Bidragsydere

 *   [ digitalstride ](https://profiles.wordpress.org/digitalstride/)

## Support

Har du noget at sige? Har du brug for hjælp?

 [Vis supportforum](https://wordpress.org/support/plugin/echo-seo/)