Since SQL Server 2005, replicating DDL statements became the default in transactional replication. You can, however, turn it off in the options for the publication if you really want to, but most don't.
That will though, only replicate indexes that are there to support constraints like primary key constraints or unique constraints.
Generally, indexes are separate objects and are not replicated.
That might seem odd at first, but it's often desirable. It is quite common to want different indexing at the source and at the subscriber. This is particularly the case where we are replicating to a location that we're then using as a source for analytics. We often want very different indexes for the analytic queries than we want on the source system.
There's also the practical issue that indexes might have key or included columns that are not being replicated. (Keep in mind that you can control which columns are replicated).