v0.24.0 - SEO podstrony generatora
v0.24.0 — SEO podstrony generatora, dostrojone do witryny
Podstrona tworzona przez wtyczkę miała dotąd SEO wspólne dla wszystkich witryn:
tytuł „Generator FAQ", ogólny opis i zero treści do zaindeksowania. To wydanie
sprawia, że SEO tej podstrony dostraja się do strony, na której wtyczka siedzi —
tak samo, jak od początku robią to odpowiedzi generatora.
Temat witryny (src/Seo/SiteProfile.php)
Wtyczka wyprowadza temat z treści bazy wiedzy (początki najobszerniejszych stron),
jednym wywołaniem API i wyłącznie przy indeksowaniu — nigdy przy wyświetlaniu strony.
Wynik siedzi w opcji i znika przy czyszczeniu bazy.
Drabinka, gdy wywołania nie da się wykonać: temat z pamięci → opis witryny (tagline,
z odrzuceniem domyślnych WordPressa) → nic. Żaden szczebel nie zmyśla.
Temat zasila tytuł podstrony, akapit wstępu, wyciąg (czyli meta description) oraz
pola about i description w danych strukturalnych.
Zmierzone na dwóch różnych witrynach, ta sama wtyczka, zero konfiguracji:
- przedszkole → „Pytania i odpowiedzi — Przedszkole z kompleksową terapią"
- testbed rolniczy → „Pytania i odpowiedzi — Chów bydła mlecznego"
Publikowanie par na podstronie (src/Faq/PublicFaq.php)
Nowy przycisk w Narzędziu FAQ: „Opublikuj na podstronie". Pary trafiają do opcji
wtyczki (nie do treści strony), wtyczka renderuje je serwerowo jako widoczny tekst
i z tych samych par składa FAQPage. Widoczna treść i dane strukturalne mają jedno
źródło, więc nie mogą się rozjechać.
Dlaczego w opcjach, a nie w treści strony:
kseswycina<script>przy zapisie przez rolę bezunfiltered_html— wklejony
JSON-LD znika po cichu;- treść strony klient edytuje, a rozjazd markupu z widoczną treścią narusza wytyczne Google;
- wtyczka jest instalowana jako pakiet na dowolnej witrynie — cokolwiek żyje w bazie
konkretnej strony, nie pojedzie razem z nią.
Dwie nowe trasy REST pod uprawnieniem NARZĘDZIA (publish_posts), łącznie 15 tras:
POST /admin/faq/publish i POST /admin/faq/unpublish.
Dane strukturalne (src/PublicUi/PageSchema.php)
Wtyczka wypisuje WebApplication opisujący narzędzie oraz — tylko gdy pary są
opublikowane — FAQPage. Nigdy WebPage, WebSite, Organization ani
BreadcrumbList: te należą do motywu albo wtyczki SEO, a duplikat zaszkodziłby.
Referencje isPartOf i provider są dopinane zawsze, więc SEO wtyczki nie wymaga
żadnej łatki w motywie. Strona wykrywana po obecności shortcode'u, nie po ID ani slugu.
Poprawki
- Koniec zdublowanego
<h1>— widget wpięty shortcode'em nie drukuje już nagłówka,
bo motyw wydrukował własny z tytułu strony. Trasa/faqgeneratorbez zmian. - Nowa podstrona powstaje z akapitem wstępu i wyciągiem — wcześniej niosła sam
shortcode, więc wtyczki SEO budowały opis z pustki i spadały na ogólny opis witryny. - Etykieta w menu — pozycja z pustą nazwą pokazywała tytuł strony, co po wydłużeniu
tytułu rozpychało nawigację. Wtyczka uzupełnia etykietę, ale wyłącznie dla pozycji
własnych i wyłącznie gdy jest pusta.
Weryfikacja
- runner: 40 zestawów, 0 niezaliczonych (nowy segment
seo-jsonld-test.php) - mutacje nowych asercji: 6/6 czerwienią
- test na żywej witrynie: 4 bloki danych strukturalnych,
FAQPagez 8 pytaniami,
pokrycie w widocznej treści 8/8, jeden<h1> - publikacja par: zero wywołań API