When you start building up a site in Sitecore and you place out renderings from the experience editor it can go really fast from having a single rendering in your add component window to having tons.
Placeholder settings are a great way to restrict what renderings are allowed in a specific placeholder. So even if you have many page types with the same placeholders in them you can specify a template-specific placeholder setting.
Let’s say you have 4 types of pages. They all have a placeholder that contains a rendering of columns. And we want this column rendering available on all those page types.

The purple border is a page type. It contains a rendering that holds two placeholders. They are named in this context, RightContent and LeftContent.
To restrain the authors from having the option to add all renderings that are available in the global placeholder settings we want to make it template-specific(or pagetype-specific).
We achieve this by adding a new placeholder setting.
The crucial part about this is you need to empty the field Placeholder Key(by default at creation this field will have the value of the item’s name)
In the field below you will set the Allowed Controls to specify what renderings are available for the template-specific placeholder.
Your last step should be on the standard values for the template. Go to Layout Details window and Edit.
Add a new placeholder setting:

Find your new placeholder setting in the treelist and fill in the “Placeholder Key” field with your placeholder.
Now when you go to the experience editor and add a new component. Only those renderings you set in Allowed Controls should show up for that specific template.
Source of inspiration: