During game development you should not count on
"but it runs good on a fast PC"

This is the approch wich makes you create a lot of errors
regarding the performance.
Its actually better to develop or at least regularily test your app on
a weaker PC.

For the performance:

-use LOD. (its the core method for higher FPS)
write your own LOD if needed
-give the user an optionmenu to turn on/off things
like shadows, shaders, the LOD distance
-dont use stancil shadows (they are slow and dont even look good), keep it limited to the playermodel if needed.
rather use the "baked" shadows from WED, or by altering the terrain-skin.
-dont use oversized textures, rather think about how to make
the texture look good in a lower resolution
-use shaders carefully, have a fallbackmethod for any
performance-hungry shader (even if it is only to be able
to turn it off)

bottom line:
your game will probably not nearly reach the quality of a
AAA game.
So reward the end-user at least by having
a decent FPS -even on older PCs-.

also, by limiting the ressource "detail" you make the game-development easier for yourself,
as you dont need to create masses of detail-object
to keep a consistent look.
World of Warcraft is a good example to create a good look without
using a lot of ressources (regarding the
texture resolution and detail of meshes and detail of ambient objects)
-> and it has very high FPS speed