Description
Titula is about how an article reads. It gives your headings a consistent
treatment, builds a table of contents with stable anchors, puts the answer
where a reader looking for it will find it, and makes tables legible on a
phone. The markup it produces is semantic, scoped and small, and your post
content is never rewritten.
Better structure and readability make an article easier for a visitor to scan,
navigate and understand, and a clearer foundation for search-friendly content.
No plugin can promise a ranking, and this one does not.
What makes it different
Article design first. Heading styles you can see before you choose them, a
table of contents with anchors that stay readable in Arabic, Spanish and
French, answer-first components that render only when you have filled them in,
and tables that scroll or stack rather than overflowing. One screen, grouped by
what it is for, with a live preview where the choice is visual.
Editorial review, not a score. Open a post and Titula says whether it is
Excellent, Good or Needs attention, then lists the few improvements worth
making, most useful first: “The section Where to stay runs 820 words without
a subheading”, “The introduction runs 340 words before the first section”, “One
page is linked 3 times”, “2 images have no alt attribute”. It also notices
heading levels that skip, runs of dense paragraphs, long stretches a phone
reader has nothing to land on, long articles with no internal links, and
statements that will date. There is no word-count target, no keyword density
and no number to chase. Nothing is rewritten; every item is advice.
Internal link suggestions you approve. Titula reads your published articles
and finds places where one could link to another. Each suggestion shows the
source, the destination, the sentence around it, a score and the reason. You
accept or ignore it.
Accepting one never rewrites your post. The decision is stored and the link is
applied when the page renders, so your content stays exactly as you wrote it
and any choice can be undone. The anchor is always a phrase your article
already contains — nothing is reworded, and no keyword is forced in. Links are
never placed inside existing links, headings, code or captions.
Arabic and RTL, handled properly
Measurement built for the Latin alphabet gives wrong answers in Arabic, and
most plugins never notice. PHP’s own str_word_count() returns zero for Arabic
text, so reading times on Arabic sites are frequently nonsense.
Titula counts by Unicode word boundaries, strips diacritics and the tatweel
before measuring since neither is a letter, discards punctuation-only tokens,
and times Arabic and Latin words at separate adjustable speeds. Heading anchors
stay readable in Arabic instead of collapsing into numbered fragments.
Three optional extras for Arabic publishers:
- Latin permalink suggestions. WordPress percent-encodes Arabic slugs, so a
title becomes a URL of the form%d8%a7%d9%84. Valid, but unreadable once
copied, printed or read aloud. Titula suggests a transliteration in the
editor with a checkbox to apply it, warns you when the post is published and
changing it would break existing links, and never changes anything on its
own. Arabic permalinks are a legitimate choice. - Hijri dates, shown beside the Gregorian date rather than replacing it.
The machine-readable date in the markup stays Gregorian, as the HTML
specification requires. Where theintlextension is available the Umm
al-Qura calendar is used; otherwise a tabular calculation, which can differ
from an announced date by a day, so a manual adjustment is provided. - Arabic typography. Raises line height, which the script needs because
letters carry taller ascenders and deeper descenders and diacritics sit above
and below the line. Just as importantly it resetsletter-spacing: Arabic
letters join, and spacing them apart pulls the joins open. Themes designed
for Latin text set letter-spacing on headings routinely, and it looks correct
in their previews because those previews are in English.
Reading experience
- Reading profiles – Editorial, Travel, Technology, Knowledge, Arabic Editorial
and Minimal – that set the rhythm between paragraphs, lists, figures, tables
and quotations. Fonts always stay your theme’s. Any post can use its own. - Table of contents from your H2 and H3 headings, with stable anchors that stay
readable in Latin, Arabic and accented scripts, in six visual styles. It
marks the section being read, closes itself on a phone after a jump, and, if
you want it to follow the reader, docks in the empty margin beside the
article rather than covering the text. An optional two-pixel progress line. - A Sources list at the end of an article: title, address, publisher and date,
as plain semantic HTML. - Sixteen heading treatments and eight accent choices, so an article looks like
your site rather than like a plugin. - Quick Answer, Key Takeaways and Article Summary, shown above the table of
contents so a reader who wants only the answer finds it first. - FAQ, facts, pros and cons, steps, checklist, related reading and an author
box. Every component optional; one with an empty field renders nothing. - Tables that take their colours from your theme’s own palette rather than
imposing a second one, and that reorganise on a phone instead of asking the
reader to drag them sideways. A table of three to seven columns becomes one
card per row, each value labelled with its own column heading. Very wide
reference tables keep their scroll, because a card that long stops being
readable. Nothing is ever hidden: a phone reader sees exactly what a desktop
reader sees.
Everything is free
There is no paid version, no upsell, no locked feature and no account.
Performance
- Rendered articles are cached and reused until the post or a setting changes.
- Content analysis is manual, batched and resumable. It never runs on a visitor
request. Also available aswp titula scan. - Stylesheets load only on singular views of a supported post type, and are
split by feature: the table rules are requested when a table is detected in
the content or when dynamic content might render one, rather than on every
article. The script loads only when the article actually has a table of
contents or images, and is deferred. - The editor analysis reads each article once and shares that reading between
every check. - No external requests, no tracking, no jQuery.
Articles built as raw HTML are left alone
If you publish some articles as a complete, self-contained HTML layout pasted
into a Custom HTML block, Titula detects them and does nothing to them at all:
no table of contents, no heading anchors, no components, no wrapper, and not
even a stylesheet request.
Detection is deliberately cautious, since wrongly skipping an ordinary article
is far worse than wrongly processing one. It looks for signals an ordinary post
never produces: a style element in the content, most of the article sitting
inside Custom HTML blocks, or heavy inline styling. A long article containing
one small embed block is not affected.
Every post also carries a Processing control in the editor, in both the block
and classic editors, so you can force either answer. Excluded articles are
still valid destinations for links from elsewhere: leaving an article alone
means not modifying it, not refusing to point at it.
What Titula does not do
- It writes no SEO title, meta description, canonical URL, robots directive,
Open Graph or Twitter tag, sitemap or redirect. - It produces no structured data – not for FAQs, articles, breadcrumbs or
sources – and never modifies schema from another plugin. - It never changes an article’s published or modified date, and never
optimises, converts or resizes an image file. - It generates no text and contacts no external service or AI model.
- It cannot promise a ranking, a Google AI Overview placement or a citation in
any AI assistant. No plugin can, and this one does not claim to. - It styles nothing outside the article container, so your theme is untouched.
Installation
- Install through Plugins > Add New, or upload the ZIP.
- Activate it.
- Open Titula in the admin menu. The Overview carries a five-step setup guide;
follow it to Appearance and pick one of the four starting points: People
First, Travel, Technology or Editorial, and a reading profile. That is the
whole setup. - Optional: run a scan from Analysis to see what your published articles are
missing, or from Internal Linking to review link suggestions.
Everything is configured in that one screen; there is no separate Titula page
under Settings. Every individual setting is still there, but you should not
need it on day one.
FAQ
-
Does this replace Rank Math or Yoast?
-
No, and it is designed not to. Titula adds no schema and no meta tags. Keep
using your SEO plugin exactly as you do now. -
Will it change my theme or my other pages?
-
No. Every CSS rule is scoped inside the article container. Your header, footer,
sidebar, widgets and every page outside the selected post types are untouched. -
Does it modify my post content in the database?
-
No. Components and approved internal links are applied when the page renders.
Your content stays exactly as you wrote it, and anything you enable can be
switched off with no trace left behind. -
Does it require Advanced Custom Fields?
-
No. Titula uses ACF when it is present and plain post meta when it is not.
-
Will it change my Arabic permalinks?
-
Only if you tick the box in the editor and save. Nothing happens in bulk,
nothing happens on activation, and the panel warns you first when the post is
already published. -
How accurate is the Hijri date?
-
It is calculated, not announced. In most countries the start of a Hijri month
is declared by observation of the crescent, and no formula predicts that. The
settings screen tells you which method your server uses and offers a manual
adjustment of up to two days. -
Does it send my content anywhere?
-
No. All analysis runs on your own server. The plugin makes no external requests
of any kind. -
What happens to my data if I uninstall?
-
Plugin settings are removed. Editorial decisions stored on individual posts,
such as which link suggestions you accepted, are left in place so that
reinstalling does not lose your work. -
Will it improve my rankings?
-
It cannot promise that, and no honest plugin can. What it does is make articles
clearer, better structured and better connected to each other.
Reviews
Contributors & Developers
“Titula” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Titula” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.2
- Two new H2 treatments: Rail and rule (a short accent rail with a hairline below) and Section badge (a small numbered badge before the text). Both use logical properties, so they mirror in right-to-left articles.
- Curated heading systems for how sites publish: Editorial, Travel Journal, Tech & Docs, Reviews, Professional and Learning, with Health Editorial and the earlier systems under “More heading systems”.
- Each system card shows its H2/H3/H4 hierarchy, a one-line description and who it suits.
- Systems only set existing heading values – no colours, no fonts. Every earlier treatment, system key and saved setting keeps working; the earlier Clean Editorial system is now shown as Editorial.
2.0.1
- Admin redesign: a slim section sidebar (Dashboard, Article Design, Editorial, Advanced), a compact product header and quieter “Find a setting”.
- Dashboard shows the current article experience and an editorial overview with the next few actions.
- Article Design uses setting rows instead of form tables, one-line summaries on each subject, and a 60/40 Heading Studio with a sticky Desktop/Mobile and LTR/RTL preview.
- Editorial reads as a work queue: Content Review and Internal Linking, with status labels and an “Edit article” link per item.
- Advanced is grouped into Content scope, Performance & loading, Compatibility and Maintenance; every reset now lives under Maintenance.
- Presentation only: no option was renamed, no setting migrated, and front-end output is unchanged.
2.0.0
Titula 2.0 is about the article itself: how it reads, how it is navigated and
what an editor should look at next. Upgrading changes nothing a visitor sees
until you choose a reading profile.
Reading
- Reading profiles: Editorial, Travel, Technology, Knowledge, Arabic Editorial
and Minimal. Each sets the spacing between paragraphs, lists, figures,
tables, code and quotations, keeps a heading close to what it introduces,
and lines unaligned figures up with the text. No font, size or colour is
set. A post can choose its own profile in the editor. Upgraded sites stay on
Classic, the 1.x spacing, until they pick one. - Under a profile, body text follows the theme’s alignment. 1.x justified it
on wide screens. - Sources: an optional reference list at the end of an article, edited in a
small box under the post or placed with[acaart_sources]. Plain HTML, no
structured data, norelvalues added.
Table of contents
- The entry for the section being read is now always right, including in long
sections and after scrolling back up. Its parent entry stays marked, and
aria-current=”location” is set. - A closed panel on a phone names the section being read, and closes itself
after a jump so the article is not pushed down. - Sticky mode no longer covers the text. The panel docks in the empty margin
beside the article once the reader scrolls past it, leaves a placeholder so
nothing moves, and stays in place where there is no room or a sidebar. - Optional reading-progress line.
- Fixed: on block themes the table-of-contents script was never loaded,
because the article is rendered before the script is registered.
Editorial review
- Excellent, Good or Needs attention, and the three improvements most worth
making, in both editors and on the dashboard. The 0-100 figures and
dimension bars are gone from every screen. - New checks: an H1 in the body, sections running long without a subheading,
runs of dense paragraphs, long stretches with nothing to scan by on a phone,
long articles with no internal links, the same page linked repeatedly,
internal links all in one section, images without alt text or dimensions,
and source images far larger than any column needs. - Time-sensitive statements – recent years, prices, requirements, “currently”,
“the latest” – are listed in the editor, in English, Spanish, French and
Arabic. A review is suggested only when the article has not been checked
for a year. Dates are never changed. - Classic-editor articles are now read with their paragraphs, so paragraph
checks work on them.
Internal linking
- The editor shows links in and out, whether the article is an orphan, the
open suggestions, and related articles when there are none. - With Polylang or WPML, suggestions and related articles stay in the
article’s own language. WPML posts are now read in their own language rather
than the admin screen’s. - Suggestion confidence is shown in words rather than out of 100.
- Link targets are resolved once per scan batch.
Headings
- H2, H3 and H4 now form a real hierarchy. H3 has treatments of its own – a
short underline, a small leading accent, a hairline divider – and “Follow
the heading system” maps every H2 style to a lighter H3 rather than
repeating the H2 decoration. H4 gains stronger type and a small accent,
and is never smaller than the text around it. - Six heading systems – Theme Native, Clean Editorial, Accent, Magazine,
Numbered and Minimal – each shown as H2, H3 and H4 together. Every earlier
H2 style is kept under Customize headings. No saved setting is changed. - Quieter treatments: no gradients, lighter tints, the accent bar the height
of the text, the section number sized as a label. - Heading spacing steps down level by level. The “spacious” value earlier
heading families wrote, which the settings form could not keep, is now read
as Relaxed. - The heading stylesheet loads whenever headings are styled, and the table of
contents skins and palettes load only when changed.
Admin
- Four destinations: Dashboard, Article Design, Editorial and Advanced.
Article Design is one page of five collapsible panels; Editorial holds
Analysis and Internal Linking. Every older address still opens the right
place. - Much shorter copy throughout, and a dashboard that shows status only.
- The heading preview uses the front-end stylesheets, with Desktop/Mobile
and LTR/RTL switches.
Performance and housekeeping
- The render cache key now includes the plugin version and a per-post
revision, so an update or a changed field is never served stale. Before
this, clearing one post’s cache never matched its entry. - One shared structural pass per article for the editor analysis; the
diagnostics no longer run twice. - Removed code for schema that Titula stopped producing long ago: the unused
Schema, Rank Math, Yoast and Search/AI readiness classes and four settings
nothing read. The upgrade deletes those four keys from the Titula option. - Fixed a PHP notice from a conditional tag called before the query ran.
- The Article Health box in the classic editor is styled again.
1.1.4
The table of contents shows the whole article again, and four issues Plugin
Check raised are fixed.
- The list no longer folds away after eight entries. A table of contents exists
to show the shape of the piece, and on a guide with twelve sections it was
showing two thirds of it and a button. Sites still sitting on that old
default are moved to the full list on upgrade; a site that chose its own
number keeps it. - Fixed: on a theme that does not define
screen-reader-text, the icon-only
back link printed the word “Contents” beside the icon. The plugin now carries
its own implementation of that class and no longer depends on the theme. - The row is the target in the table of contents, not just the words: hover and
focus cover the whole entry, and the entry you are reading is marked on its
edge without the text shifting. - The heading you arrive at from the table of contents is outlined for a moment,
so a jump down a long article lands somewhere visible. - Headings wrap evenly rather than leaving one word on the last line.
- Focus rings on the contents panel, its “view all” button and its entries.
- A sticky contents panel stops scrolling the article when its list reaches the
end. - Plugin Check: translator comments on three strings, the percent-encoded
Arabic URL example moved out of a translatable sentence, and WPML’s own
filter name documented rather than flagged.
1.1.3
The live preview moved to where it can be seen, and the back link got a choice
of arrow.
- Live preview beside the heading controls instead of below them, following
the page as you scroll. It was at the foot of a long section, far enough down
that people did not know the plugin had one. - Six shapes for the “back to contents” link: the original list-and-arrow, a
plain arrow, a chevron, an arrow meeting a rule, a return arrow and a plain
list. Picked from cards that draw the real icon; mirrored in a right-to-left
article so an arrow still points back the way the reader came. - Press / anywhere on the settings screen to jump to the finder, and the
finder now counts a picker once rather than once per card. - The section list marks the group you are reading, opening a section takes
you to the top of it, and its heading takes focus so a screen reader says
where you are. - Printing an article no longer prints “Contents” beside every heading, keeps
a heading with the section it introduces, and avoids breaking a panel, a
table row or a figure across pages. - The icon-only back link has a tap target a finger can hit, and a focus ring
a keyboard user can see.
1.1.2
Orientation. The dashboard now answers three questions before it is asked: what
is this section set to, what else is in it, and where is that one setting.
- A finder above the settings. Type two letters and every matching control on
the screen is listed with the section it lives in; choosing one opens that
section, scrolls to the control and marks it. - Each section shows what it is currently set to, read from your saved settings
- the article style, the heading system, how many components are on.
- Every group of settings is now titled, and a section with several of them
prints a short list of links to each. - The sixteen components are grouped by the job they do rather than listed in
one run of sixteen. - A section you have edited but not saved is marked in the navigation, and the
end of each design section offers the next one. - The screen was redrawn on two surfaces – a navigation panel and the open
section – so a card no longer sits inside a card. The navigation follows you
down a long section. - Fewer bytes: the settings form is printed only on a section that has
controls, and the library summary only where a figure is shown.
1.1.1
One administrative home, and a clearer product. Every setting is now edited in
the Titula dashboard, grouped by what it is for: Article design, Article
health, Optional and Advanced. Nothing moved in storage and no setting was
renamed or removed.
- Saving returns you to the section you were editing. The form’s return address
is written by the server for the open section instead of being taken from the
request URL, which is why a save used to land on Overview. - Settings > Titula is no longer a separate destination. The old address still
works and forwards to the section that replaced it, as do the old tab
addresses. - Information Quality is gone from the dashboard. The measurement itself stays:
it is one of the five Editorial Readiness dimensions in the post editor. - Internal Linking keeps every feature and moves under Optional. Topic
structure and decision history are shown inside it rather than as tabs of
their own, and it no longer supplies the dashboard’s headline figures. - How It Works is replaced by a five-step setup guide on the Overview.
- Arabic typography, text direction, reading speed, Latin permalinks and Hijri
dates moved from the linking screen to Appearance, where reading comfort is
decided. The editorial preset moved to Components; the interface language to
Advanced. - The scoped reset buttons print after everything they reset, rather than in
the middle of the section. - Analysis reports what articles are missing; its link counts moved to Internal
Linking. - Fewer queries: the library summary is read only by the screens that show it.
- Narrow screens no longer scroll sideways, and the link-rules table scrolls
inside its own box.
1.1.0
Presentation, compatibility and correctness. An existing site keeps its current
behaviour on upgrade: the two settings introduced here that could change what a
visitor sees are written to their previous values during the upgrade, and only
change if you choose to change them.
New
- Headings Studio: a Headings screen with a visual style picker instead of
a dropdown of names, six coordinated heading systems that set H2, H3 and H4
together, hierarchy controls for weight, accent strength, decoration width,
numbering and alignment, and a live preview with desktop, tablet, mobile,
LTR and RTL views. Nothing is saved until you press Save Changes. - Sixteen heading treatments and six table-of-contents styles.
- Seven accent palettes plus a custom colour. The default still follows the
colour detected from your theme. - Text direction read from the article’s own words rather than the site
language, so an article written in a different script from the site is no
longer laid out the wrong way round. Off for existing sites until enabled.
Fixed
- Component stylesheets are chosen from a single list of every component, so an
article using only Facts, Verdict, Pros and cons, Checklist, Key takeaways,
Summary, Author or Related no longer renders unstyled. - Language is no longer guessed from text direction. Persian and Urdu are not
Arabic and French is not English, so alangattribute is now written only
where a multilingual plugin, the site locale or a filter actually knows the
answer, and omitted otherwise. - Generic meta names such as
faq,summaryandstepsare no longer read on
new installations, where they collide with ACF fields, themes and other
plugins. Existing installations keep reading them, and no field belonging to
another plugin is ever written to or deleted. - Custom fields returning repeaters, groups, image arrays, relationships or
nested arrays no longer produce “Array to string conversion” warnings. - Live analysis in the editor now judges the content on screen rather than the
last saved version, including whether the article is excluded from
processing. - The table stylesheet is requested when a table is detected in the content or
when a shortcode or dynamic block might render one, rather than on every
article on a site with tables enabled. Detection is deliberately cautious:
it errs towards loading rather than risk an unstyled table. - Admin confirmation dialogs and layout moved out of inline attributes into the
enqueued stylesheet and script, keeping the messages translatable. - Dashboard progress text is fully translatable instead of assembling an
English word onto a translated phrase. - Uninstall now also removes the rebuildable content index and suggestion list,
while keeping editorial decisions such as chosen styles, accepted links and
review dates.
1.0.0
- First public release.
