SEO, analytics and accessibility

Best Practices 6 min read

Three related jobs: being found, being measured, and being usable. A theme provides the technical groundwork for all three, and none of them is finished by a theme alone.

#SEO

Work from indexing outward.

Visibility

Confirm search engines are not blocked. The "discourage search engines" checkbox in SettingsReading is switched on more often than anyone expects, usually left over from building the site.

A sitemap

WordPress generates one. An SEO plugin gives you more control over what is in it.

Canonical URLs

One address per piece of content, so the same page under two URLs does not compete with itself.

Metadata

A title and description per page, written for a person reading a search result rather than stuffed with keywords.

Heading structure

One h1 per page, then h2 and h3 in order. Headings are an outline, not a set of font sizes.

Internal links

How search engines find your older content, and how readers do.

Readable URLs

Words rather than numbers, decided before you publish rather than after.

No theme delivers rankings.

A theme provides correct technical structure. What you rank for is decided by your content and by who links to it, and any theme sold on a promise of rankings is selling you the wrong thing.

#Structured data, and who owns it

Structured data is machine readable markup describing what a page is: an article, its author, a breadcrumb trail, a recipe. Search engines read it to build the extra detail shown under a result.

The division of labor between a theme and an SEO plugin is worth understanding, because getting it wrong produces duplicates rather than errors, and duplicates are hard to notice.

An SEO plugin owns page level markup. Article, author, organization, website, and the social sharing tags that decide what a link looks like when somebody posts it. This is what SEO plugins are for, and it is why our themes do not emit those tags: two sources of the same markup on one page is worse than one.

The theme owns the markup for what it draws. In our themes that is the breadcrumb trail. The theme builds the visible trail, so it also emits the BreadcrumbList describing it, with no plugin required. Install nothing and your breadcrumbs are still machine readable.

That brings one decision. If you run an SEO plugin that also draws breadcrumbs, you now have two trails available and should be showing one.

Our themes build their own breadcrumb trail and let you point it at a plugin's trail instead. The choice sits in the theme's breadcrumb settings, and the supported sources are Yoast SEO, Rank Math, SEOPress and All in One SEO.

Every one of the four is always listed. The ones whose plugin is not active appear disabled, so the list tells you what is supported rather than hiding it.

Built in

The theme builds the trail and emits the BreadcrumbList for it. This is the default, and it is complete on its own.

An SEO plugin

The plugin builds the trail and the theme displays it. The theme emits no structured data in this mode, because the plugin is already describing its own trail.

A separate setting decides whether a plugin supplied trail is repainted in the theme's styling or left with the plugin's styling. Repainting is the default, so switching source does not change how the page looks.

Never show the theme trail and a plugin trail at the same time.

Two BreadcrumbList blocks on one page is a conflict a search engine resolves by picking one, and which one it picks is not up to you.

#Analytics

Connect analytics through the provider's official plugin, or through a plugin whose job is inserting code. Do not put the tracking code in the theme, because it disappears the day you change theme.

After connecting, check three things: that data actually arrives, that your caching and optimization plugins are not stripping the script, and how much weight the third party script added to your pages.

On consent: a banner by itself does not block anything. The tracking script has to be registered with a consent category in whichever consent solution you use, or consent will be requested and the script will run regardless.

Cookie consent and GDPRThis integration shows a cookie consent banner and keeps third party scripts switched off until a visitor agrees. It is self contained: the banner and the stored choice are ours, with no thi...Integration

#Accessibility

A practical checklist that covers most of what matters:

  • Alt text on images that carry meaning

  • A consistent heading hierarchy

  • Link text that describes its destination, never "click here"

  • Enough contrast between text and background

  • Captions on video

  • A visible focus indicator

  • The whole page reachable with a keyboard

The final result depends on the theme, your content, the palette you chose and any third party plugins. A theme can give you accessible components and cannot stop you putting grey text on a white background.

Finish with two checks. Walk one page using only the keyboard, which finds problems no tool reports. Then run an automated audit such as WAVE, treating it as a supplement rather than a verdict.

#Common questions

Which SEO plugin should I use?

Any of the well maintained ones, since what matters is picking one, because two SEO plugins emit competing metadata for the same page.

Does the theme add structured data?

Yes, for the breadcrumb trail and with no plugin needed, while article, author and organisation markup comes from your SEO plugin as the correct owner of it, which means a page with no SEO plugin carries breadcrumb markup and no article level markup.

Who writes the social sharing preview?

Your SEO plugin, since the image, title and description a link shows when posted are set per page there and the theme stays out of it so the two never disagree.

How do I check what my pages actually emit?

Run a page through the Google Rich Results Test or the Schema Markup Validator, both of which list every block of structured data found, which is how you spot a duplicate you did not know about.

My pages are not indexed

Check the reading setting first, then your robots.txt, then whether the pages are linked from anywhere at all, and remember that new sites simply take time regardless of how correct everything is.

Is an accessibility overlay widget enough?

No, overlays sit on top of problems rather than fixing them, and the checklist above does more for real users than any widget does.

Analytics shows no data

Check in a private window with any ad blocker off, since blockers stop most analytics, then check whether your consent setup is holding the script until consent is given, which is correct behaviour and looks identical to a broken install.

#Still stuck

Open a support ticket with the page URL and what the validator reports for it.

Last updated

Was this article helpful?

Related articles

FIND THE ONE THAT FITS YOUR PROJECT

Import a demo, swap the content, adjust the layout. Modern WordPress under the hood, fast even when the site fills up.