=== DIGISTARTER Basic SEO ===
Contributors: digistalter
Tags: seo, meta description, open graph, title, sitemap
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A title pattern for the whole site, a meta description per page, Open Graph tags built from both, and a working /sitemap.xml.

== Description ==

Most SEO plugins ask you to learn a second interface before you can write a single sentence. This one adds three settings and one field, in the places you would look for them anyway.

**A title pattern, set once**

Under **Settings → General**, right below the Site Icon, pick a separator and decide whether the site name comes before the page title, after it, or not at all. That choice applies to every kind of page WordPress renders — posts, pages, categories, tags, archives, author pages, search results and the 404 page.

The front page is the one exception. It always shows the site title followed by the tagline, whether WordPress generates it or a static page is set as the front page. A front page called "Home" makes a poor title, and a WordPress-generated one has no title at all.

The defaults match what WordPress already does, so activating the plugin changes nothing until you decide otherwise.

**A meta description where the page is edited**

* In the editor sidebar, on posts and pages.
* In Quick Edit, in both list screens.
* A column in the list screens, so you can see at a glance which pages still need one.
* For the front page: in Settings → General, next to the title settings.

Left empty, no description tag is written. The plugin never invents a description from the first sentences of your text — an empty result is more honest than a bad one.

**Open Graph, without a second set of fields**

Every page gets `og:title`, `og:description`, `og:image`, `og:url`, `og:type`, `og:site_name`, `og:locale` and a Twitter card tag, built from the title, the meta description and the featured image. `og:title` carries the plain page title; the site name is already in `og:site_name` and would otherwise appear twice in a link preview. Pages without a featured image get no `og:image`, and pages without a description get no `og:description`.

**A sitemap at the URL search engines expect**

`/sitemap.xml`, listing every published post and page with its last-modified date. Generated fresh from the database on each request — nothing is written to a file, so nothing can fall out of sync after a post or page is created, edited, or deleted.

WordPress has had a built-in sitemap since version 5.5, at `/wp-sitemap.xml`; a request for the shorter `/sitemap.xml` normally redirects there. On at least one real installation that sitemap answered with a 404 HTTP status despite valid content in the body — something between WordPress core and that specific server's setup — and Google Search Console refuses a sitemap that doesn't answer with a plain 200, redirect or not. This plugin's own version bypasses whatever caused that: it matches the request directly and always sets its own status, independent of WordPress's usual page-not-found handling. `robots.txt` is updated to point at it.

**What it deliberately does not do**

No per-page title override, no robots controls, no character counters, no snippet preview, no templates with placeholders, no menu of its own, no dashboard. If you need those, install one of the large SEO plugins — this one exists for sites that do not.

== Installation ==

1. Upload the plugin to `/wp-content/plugins/` or install it through the plugin screen.
2. Activate it.
3. Open **Settings → General** and pick a title separator and order.

== Frequently Asked Questions ==

= Why is there a Meta description column in the post list? =

Because it is the only way WordPress offers a custom field in Quick Edit — the hook fires only for columns that actually exist. It doubles as a useful overview. You can hide it under "Screen Options".

= Can I add the field to my own post type? =

Yes, with the `digi_seo_post_types` filter. Note that the sidebar field only appears on post types that use the block editor and declare support for `custom-fields`; WordPress does not expose the `meta` field over the REST API otherwise. Quick Edit works everywhere.

= What happens to my descriptions if I uninstall the plugin? =

They stay. Only the three settings are removed — those are meaningless without the plugin, while the descriptions are text you wrote.

= How is the sitemap different from WordPress's own /wp-sitemap.xml? =

It only lists published posts and pages — no taxonomy archives, no author pages, no custom post types — and it doesn't share any code with WordPress's own sitemap system, so a problem with one can't affect the other. `/wp-sitemap.xml` keeps working exactly as it did before.

= Can I change which URLs are in the sitemap? =

Yes, with the `digi_seo_sitemap_urls` filter. Each entry is an array with `loc` and `lastmod`.

== Changelog ==

= 1.0.0 =
* Initial release.
