Share cards, rich search results, robots.txt, an image sitemap and redirects for old addresses.
What it does
- Share cards — Open Graph and Twitter meta tags on the public pages: home, listings, categories, tags, topics and profiles. A topic uses the first image of its first post when there is one; otherwise the default share image or the site icon.
- Structured data — JSON-LD for search engines:
WebSitewith a search action on the home page,DiscussionForumPostingon topics (author, dates, reply count, likes, tags, section),ProfilePageon profiles,CollectionPageon lists andBreadcrumbListwherever the core draws breadcrumbs. - robots.txt — served at
/robots.txt, keeping crawlers out of the admin, search, sign-in, settings, notifications, review queue, the API and cron, and pointing at the sitemap. Extra rules can be appended in the settings. - Image sitemap — the standard sitemap (home, visible categories, topics) plus the first image of each topic, through the core
seo.sitemaphook. Deleted and hidden content stays out. - Redirects — old addresses are answered with 301/302 before the 404 page. Managed under Admin → Plugins → SEO & redirects.
- 404 report — missed addresses, their hit counts and last visit, with a one-click "Redirect" form. No IP addresses or referrers are stored.
- Verification tags — Google, Bing and Yandex meta tags from the settings.
Meta tags are only added to public pages. Pages the core marks noindex (for example the page right after posting a reply), the admin, settings, sign-in, registration and the API are never touched. Images must be https or files under /uploads, and all values are escaped for HTML or for a <script> context.
Settings
Admin → Plugins → SEO
- Enable the SEO tools — master switch, default on.
- Share cards — default on.
- Structured data — default on.
- Add post images to the sitemap — default on.
- Serve /robots.txt — default on.
- Record missed addresses (404) — default on. Redirects keep working with this off.
- Default share image — full
https://address, used when a topic has no image. - X (Twitter) account — optional
@handlefortwitter:site. - Google / Bing / Yandex verification code — printed only when the value looks like a verification token.
- Extra robots.txt rules — plain text, appended as written.
Admin page
Admin → Plugins → Plugins → SEO & redirects (also linked from the plugin settings drawer).
- Redirects: old path, target, 301/302, visit count, edit and delete.
- Missed addresses: the 100 most frequent, with hits and last visit. "Redirect" opens the form with the path filled in.
- "Clear the report" empties the 404 table.
A redirect target can be a path on this site (/t/new-title-34) or a full https:// address. A path that already has a redirect is refused, and so is a target equal to the old path.
Data and maintenance
Two tables: plugin_tabre_seo_redirect and plugin_tabre_seo_miss. A daily cron job removes 404 rows older than 90 days and keeps the table under roughly 5000 rows (low-traffic rows go first). Uninstalling drops both tables.
When clean URLs are off, robots.txt also blocks the index.php?r=… form of each private address. Serving /robots.txt itself requires clean URLs, because the router reaches plugin pages through index.php otherwise.
Notes
- No front-end JavaScript and no external requests.
- The sitemap is rebuilt on each request and capped at 5000 topics, like the core sitemap.
- Only the first image of the first post is listed: enough for search previews without turning the sitemap into an image archive.