Pricing page and pricing tables
A good pricing table lets people compare in seconds and points gently at the plan most of them should choose.

How many plans?
Three is the classic: a basic plan, the one most people need, and a larger plan for bigger clients. Two works for simple offers; more than four becomes hard to compare. Highlight one plan with colour, a "Most popular" label or a slightly taller card, but only one.
Widgets
Elementor Pro has a Price Table widget with heading, price, period, feature list, ribbon and button in one. With the free version, build each card as a container: Heading (plan name), Heading (price, large), Text Editor (billing period), Icon List (features), Button. Save the first card as a template, duplicate it, and change content only.
Line cards up with the parent container's Align Items: Stretch so all cards are equal height, then push the buttons to the bottom by giving the feature list a flex-grow of 1.
Monthly / annual toggle
A toggle needs some logic. Common approaches are the Tabs widget (one tab per period, each with its own set of cards), a Pro loop with a switcher, or a small addon. The simplest reliable option is two tabs. Say the saving in the tab label ("Annual – 2 months free").
On phones
Stack the cards in one column and put the highlighted plan first on mobile using the container's Order setting. Keep feature lists short; a full comparison belongs in a table below the cards, inside a horizontally scrollable wrapper.
Be clear
- Show whether prices include tax.
- Say what happens at the end of a trial or contract.
- Don't strike through a "regular" price that was never charged.
Questions
Should I show prices at all?
If your work is custom, give a range or a starting price and explain what changes it. Visitors who see no price often assume it's expensive and leave.