When Not to Use Dynamic Years (and How Google Treats Them)
A dynamic year is the easiest freshness signal to fake. One shortcode turns “Best Hosting in 2024” into “Best Hosting in 2026”, and nothing on the page has to change for that to happen.
That’s exactly why it needs a rule. A dynamic year should be used where the page is reviewed every year, and it should be skipped where the year makes a claim the content can’t back up. The shortcode saves the January edit, but someone still has to review the page.
Dynamic Month & Year into Posts is my free plugin behind the [year] and [monthyear] shortcodes, and it is deliberately narrow. Before deciding where to use it, I want to ensure you know exactly what it changes and what it leaves alone.
What the Plugin Changes
The plugin replaces shortcodes with dates when a page is rendered. That’s all it does:
- It changes text in titles, content, excerpts and the SEO fields of Rank Math, Yoast SEO and SEOPress.
- It doesn’t change the post’s modified date. WordPress keeps the date of the last real edit.
- It doesn’t touch
datePublishedordateModifiedin your schema. - It doesn’t send a Last-Modified header, ping search engines or change the sitemap date.
- It writes nothing to the database and runs no scheduled jobs.
So a post with “2026” in its title can still say “Updated March 4, 2024” under the title and carry "dateModified": "2024-03-04" in its schema. The year and the date tell 2 different stories, and readers can see both.
How Google Treats Dates
Google doesn’t publish anything specific about year shortcodes. It does publish how it reads dates and what it considers search-engine-first behavior, and both apply here.
From Google’s guidance on publication dates:
- Google says it “doesn’t depend on a single date factor” and looks at several signals to estimate when a page was published or significantly updated.
- It asks for a visible date and for
datePublishedanddateModifiedin structured data, and for the visible and structured dates to match. - It says not to use future dates: “Don’t specify future dates, or the date of the action described on the page.”
From Google’s page on creating helpful content, in its list of search-engine-first warning signs:
- “Are you changing the date of pages to make them seem fresh when the content has not substantially changed?”
A year in a title isn’t the page’s date, so the shortcode doesn’t break the first set of rules on its own. But a title that claims 2026 over content last checked in 2024 is the same move as the second warning: it makes the page look fresh without the work. I’d treat a dynamic year as a promise that someone reviews the page every year.
When a Dynamic Year Is the Right Call
These uses keep the promise:
- Copyright footers.
© [year] Your Companyis the classic case. Nobody reads it as a freshness claim. - Annual roundups you actually revisit, where you check the picks each year and only the number in the title used to need editing.
- Calendars, planners and deadlines that genuinely cover the current or next year, such as “
[year]Tax Deadlines” on a page you update when the deadlines change. - Monthly deal and coupon pages with
[monthyear], as long as the deals on the page are checked that month. - Ages and tenure, such as years in business, where the number is a calculation and not a claim about the content.
When to Skip It
These uses turn the shortcode into a liability:
- Posts you don’t review every year. If the content stops being checked, a hardcoded year that ages honestly is better than a dynamic one that hides the age.
- Facts tied to a specific year: prices, statistics, laws, version numbers and “as of” claims. A line such as “The Pro plan costs $29 a month in
[year]” becomes false the day the price changes. - News, release notes and event recaps. “Black Friday 2025 Recap” must stay 2025 forever.
- Testing claims. “Tested in
[year]” says a test happened this year. If it didn’t, the page says something untrue. - Next-year titles before the content exists.
[nyear]in “Best Laptops of 2027” in October 2026 promises a review of products that may not be out yet. - Category and tag names. The year doesn’t render in their browser tab titles, so
[year]shows up there as typed.
Keep the Page and the Dates Honest
A dynamic year works best alongside a real update habit:
- Review the page when the year changes. Update the picks, the prices and the screenshots.
- Save the post after the review. That moves the modified date, so the visible “Updated” date and
dateModifiedmatch the year in the title. - Purge the page cache on January 1, and on the first of each month for
[monthyear]pages. The plugin renders on the server, so cached HTML keeps the old year until it’s cleared. - Keep the year out of the slug. A slug like
/best-laptops-for-students/survives every year. A slug with a year in it ends up needing a redirect.
The Live Countdown block is the one output that corrects itself in the browser. Every shortcode, title and meta tag waits for the cache.
Check It Works
Open any page that uses a dynamic year and compare 3 things:
- The year in the title.
- The visible “Updated” or “Last modified” date, if your theme shows one.
dateModifiedin the page’s schema, which Google’s Rich Results Test shows.
If the title says this year and the other 2 are more than a year old, either review the page or put a real year back in the title.
What It Won’t Do
The plugin can’t tell an honest use from a misleading one:
- It won’t warn you when a post with
[year]hasn’t been edited in a year. - It won’t update the modified date to match the title, by design. A date that moved without an edit would be the fake freshness Google warns about.
- It won’t change content. Prices, picks and screenshots stay as you left them.
To set up the titles themselves, start with How to Keep the Year in Post Titles Current Without Editing Posts. The troubleshooting reference covers caching and time zone problems in more depth.