✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekRank for historical treaty pages

Maintain a treaty database with dates, signatories, and key clauses. SleekRank reads each row and publishes one indexable WordPress page per treaty at /treaty/{slug}/ with parties, clauses, ratifications, and a treaty OG card driven by the data.

€50 off for the first 100 lifetime licenses!

SleekRank for Historical treaty pages

International law readers want exact clauses, not loose treaty summaries

A researcher looking up the Treaty of Westphalia wants the exact signing date (October 24, 1648), the parties (Holy Roman Empire, France, Sweden, Dutch Republic), the territorial cessions, and the religious settlement clauses. Loose blog posts that summarize a peace settlement in one paragraph never serve the long tail. Around 2,000 named historical and modern treaties each deserve their own focused page with the same field set filled in every time.

SleekRank treats the treaty database as the source of truth. Columns for slug, name, signing_date, parties, key_clauses, ratifications, and status feed one base page at /treaty/{slug}/. The data flows into the right cells, the JSON-LD picks up the same fields, and the country-level pages aggregate from the parties array automatically.

Tag mappings carry the headings, selector mappings fill the treaty infobox, list mappings render the parties and clauses, and a meta mapping wires the OG image. When a state ratifies an existing treaty, you update one cell. When the UN registers a new bilateral agreement, you add a row and the page goes live with the next sync.

Workflow

From treaty row to indexable agreement page

1

Build the base treaty page

Design one WordPress page with hero, treaty infobox, parties block, key clauses list, ratification timeline, full-text link, and a scholarly commentary section. The base page lives at the URL template and every treaty inherits its layout from the same template.
2

Structure the treaty sheet

Columns for slug, name, signing date, parties array, key clauses array, ratification timeline JSON, status, text URL, and image URL. Around 2,000 rows cover the major historical and modern treaties registered with the UN and other depositary bodies.
3

Wire mappings to the template

Tag mapping for the title and H1, selector mappings for the infobox cells, list mappings for parties and clauses, meta mapping for the OG image. The same row fills every block, so the layout stays consistent across the corpus of treaties large and small.
4

Cluster by topic and depositary

Use topic and depositary columns to drive related-page lists at the bottom of each page. A list mapping filters the sheet by topic and renders six related treaties per page, deterministically ordered by signing date so the historical sequence stays clear to readers.

Data in, pages out

Each treaty is one row, the rest is template

Columns for signing date, parties, key clauses, status. Tag and selector mappings populate the page; list mappings render the signatories and clauses.
Data source: UN Treaty Series / treaty database
slug name signing_date parties_count status
westphalia Peace of Westphalia 1648-10-24 100+ Historic
versailles-1919 Treaty of Versailles 1919-06-28 32 Superseded
nuclear-non-proliferation NPT 1968-07-01 191 In force
paris-climate Paris Agreement 2016-04-22 196 In force
montreal-protocol Montreal Protocol 1987-09-16 198 In force
URL pattern: /treaty/{slug}/
Generated pages
  • /treaty/westphalia/
  • /treaty/versailles-1919/
  • /treaty/nuclear-non-proliferation/
  • /treaty/paris-climate/
  • /treaty/montreal-protocol/

Comparison

Per-treaty blog posts vs SleekRank

Hand-written treaty posts

  • Each treaty is a manual post, written and laid out from scratch
  • Ratification lists drift between posts as new states sign on
  • Bulk updates after new ratifications touch each post by hand
  • Cross-links between related treaties stay manual
  • OG card and schema have to be set on every post separately
  • Growing past around 100 treaties becomes an editorial burden

SleekRank

  • One row per treaty fills /treaty/{slug}/ automatically
  • Selector mappings render the treaty infobox from columns
  • List mappings render the parties and key clauses
  • Tag mapping carries treaty name into the page title and H1
  • OG card auto-managed via meta mapping to og:image
  • Around 2,000 treaties become around 2,000 indexable URLs from one template

Features

What SleekRank gives you for Historical treaty pages

Treaty infobox fields

Signing date, location, depositary, entry into force, parties count, and current status each land in their own cell via selector mappings. Country-level pages aggregate from the parties array so a country roster builds itself from the same sheet that drives the per-treaty pages.

Party and clause lists

Store parties and key clauses as JSON array columns. The list mapping renders one li per signatory with ratification status and one li per clause with article number. Adding a newly ratified state is one cell edit, not a rewrite of the treaty page.

Status and ratification timeline

Status values like in force, superseded, or historic drive a status banner. A timeline column carries ratification events as a JSON array, rendered as a vertical timeline. When a state signs or withdraws, the timeline updates from one cell on the next cache refresh.

Use cases

Who runs treaty libraries on SleekRank

International law reference sites

Publish a deep treaty library that surfaces the right page for every UN, EU, or bilateral query. Each treaty carries the same fields, the country pages link into the catalog, and the corpus grows as new agreements are signed or registered.

Law schools and policy programs

Provide students with a consistent treaty reference for international law coursework. The same sheet that drives reading lists feeds the public treaty pages, kept in sync without parallel edits and with primary source citations and full-text PDF links.

NGOs and policy think tanks

Run advocacy campaigns and policy briefs off the same treaty database. Climate teams cite Paris and Montreal pages with up-to-date ratification counts; arms control teams cite NPT and CTBT pages with current signatory lists, all from one shared source of truth.

The bigger picture

Why international agreements reward depth at scale

International law researchers cite before they teach. A scholar working on the Paris Agreement wants the current ratification count, the NDC submission dates per state, and the linkage with the UNFCCC parent convention. They do not want a six-paragraph blog post that mixes climate agreements under one heading.

The sites that win in this niche publish one focused page per treaty and keep the ratification figures current. Doing that by hand across 2,000 treaties is years of editorial work. Doing it from a sheet is one law librarian editor and one weekend of template work.

The structured approach also pays back on long-tail search. Queries like NPT signatories list current, or Paris Agreement withdrawal status by country, land on pages that already carry that exact field. New ratifications are the other reason to keep this corpus data-driven.

States sign and withdraw constantly, and a single column update propagates the change across the whole library on the next cache refresh, instead of grepping through 2,000 posts.

Questions

Common questions about SleekRank for Historical treaty pages

Yes. Add a parent_slug column for protocols and annexes. The main treaty page renders from its own row, and protocols link back via a list mapping that filters the sheet by parent_slug. The Kyoto Protocol can sit as a child of the UNFCCC while still having its own page with its own signatories and clauses.

 

Use a treaty_type column with values like bilateral, plurilateral, or multilateral. Conditional sections render whichever fields apply: simple party list for bilaterals, full ratification table with reservations for multilaterals. One template serves both a US-UK extradition treaty and the UN Charter cleanly.

 

Update the parties array to add a withdrawal date for that state. Conditional rendering shows withdrawn states under a separate Withdrawn label, and the in_force count adjusts on the next cache refresh. The historical record stays intact while the live page reflects current standing accurately.

 

Yes. Era-specific blocks render conditionally. A modern UN treaty page shows depositary, registration number, and entry-into-force conditions. A historical treaty page like the Congress of Vienna shows territorial maps and dynastic clauses instead. One template adapts via the data to serve both.

 

A text_url column points at the official PDF in the UN Treaty Series, the national depositary, or a public archive. The page renders a prominent Full text link, and parsing tools can fetch the PDF for clause-level search. Translations into other languages live as additional URL columns alongside the original.

 

Schema.org has no dedicated Treaty type, so the page uses LegislativeAct or Article with extra JSON-LD additions for parties, ratifications, and key clauses. Search engines treat the page as a rich legal document, and the custom JSON-LD gives downstream pipelines clean access to the structured agreement data.

 

The page is static, but a structured submission form can feed a moderated commentary column. Approved analyses land under a Scholarly commentary heading via a list mapping with author attribution. Editorial control stays with the sheet owner, and the editorial team vets submissions before they reach the live page.

 

Because every page is built from a unique row, visible content varies by treaty. Topic context comes from treaty-specific clauses, not a shared block. Schedule a quarterly review of any columns that risk repetition (generic preamble summaries, boilerplate ratification descriptions) and tighten them at the data layer of the sheet.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€99

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€179

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Launch Offer

€299

€249

EUR

once

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView